home *** CD-ROM | disk | FTP | other *** search
/ Aminet 6 / Aminet 6 - June 1995.iso / Aminet / gfx / 3d / irit50src.lha / irit5 / scripts / wheel.irt < prev   
Encoding:
Text File  |  1993-12-30  |  1.2 KB  |  69 lines

  1. #
  2. # A teeth wheel:
  3. #                        Gershon Elber, Apr 89
  4. #
  5.  
  6. time(true);
  7.  
  8. save_res = resolution;
  9.  
  10. # Number of samples per circle:
  11. resolution = 8;
  12.  
  13. # Note angle must be power of 2 as we multiply it by 2 each iteration, and
  14. # angle_log should hold the base 2 log of the divider in angle: log2 16 = 4.
  15. angle = 360/16;
  16. angle_log = 4; 
  17.  
  18. C = cylin( vector( 0.6, 0.0, -0.1), vector( 0.0, 0.0, 0.3 ), 0.1 );
  19. view( list( C, axes ), true );
  20.  
  21. for ( i = 1, 1, angle_log,
  22.     C = C + C * rotz( angle ):
  23.     angle = angle * 2:
  24.     view( list( C, axes ), true )
  25. );
  26.  
  27. #
  28. # Now lets create the wheel, make a hole in it to make it looks more real,
  29. # and subtract all the teeth from it:
  30. #
  31.  
  32. resolution = 32;
  33. wheel = cylin( vector( 0.0, 0.0, 0.0 ), vector( 0.0, 0.0, 0.08 ), 0.6 );
  34. beep();
  35.  
  36. resolution = 16;
  37. H1 = CYLIN( vector( 0.0, 0.0, -0.1 ), vector( 0.0, 0.0, 0.3 ), 0.1 );
  38. H2 = BOX( vector( -0.2, -0.05,-0.1 ), 0.4, 0.1, 0.3 );
  39. H = H1 + H2;
  40. free( H1 );
  41. free( H2 );
  42.  
  43. beep();
  44. view( list( wheel, H ), true );
  45. wheel = wheel - H;
  46. free(H);
  47.  
  48. wheel = convex( wheel );
  49. beep();
  50. interact( wheel );
  51.  
  52. wheel = wheel - C;
  53. free( C );
  54. beep();
  55. interact( wheel );
  56.  
  57. final = convex( wheel );
  58. free( wheel );
  59.  
  60. time( false ); # In Seconds
  61.  
  62. beep();
  63. interact( final );
  64.  
  65. save( "wheel", final );
  66. free( final);
  67.  
  68. resolution = save_res;
  69.